package Predicate;

import java.util.function.Predicate;

/*
Predicate<T>:常用的四个方法
     boolean test (T t):对给定的参数进行判断（判断逻辑由Lambda表达式实现），返回一个布尔值
     default Predicate<T> negate():返回一个逻辑的否定，对应逻辑非
     Predicate<T>接口通常用于判断参数是否满足指定的条件
 */
public class PredicateDemo01 {
    public static void main(String[] args) {
//          Boolean b1=checkString("hello",(String s)->{
//              //条件：判断字符串是否满足长度大于8
//             return s.length()>8;
//          });

        Boolean b1 = checkString("hello", s -> s.length() > 8);
        System.out.println(b1);

        Boolean b2 =checkString("helloworld",s->s.length()>8);
        System.out.println(b2);
    }

    //判断给定的字符串是否满足要求
    private static boolean checkString(String s, Predicate<String> pre) {
//        return pre.test(s);
//        return !pre.test(s);//对结果进行逻辑非的运算
        return pre.negate().test(s);//调用negate()方法是对test()方法逻辑非的操作
    }
}
